#include<stdio.h>
#include<malloc.h>
#define MaxSize 100

void Hanoi1(int n,char a,char b,char c)
{   if(n==1)
        printf("\t将第%d个盘子从%c移动到%c\n",n,a,c);
    else
    {   Hanoi1(n-a,a,c,b)
        printf("\t将第%d个盘子从%c移动到%c\n",n,a,c);
        Hanoi1(n-1,b,a,c);
    }
}

typedef struct
{   int n;
    char x,y,z;
    bool flag;
}ElemType;
typedef struct
{   ElemType data[MaxSize];
    int top;
}StacType;

void InitStack(StackType * &s)
{   s=(StackType *)malloc(sizeof(StackType));
    s->top=-1;
}

void DestroyStack(StackType * &s)
{
    free(s);
}
bool StackEmpty(StackType *s)
{
    return(s->top==-1);
}
bool Push(StackType * &s,ElemType e)
{   if(s->top==MaxSize-1)
        return false;
    s->top++;
    s->data[s->top]=e;
    return true;
}
bool Pop(StackType * &s,ElemType &e)
{   if(s->top==MaxSize-1)
        return false;
    s->top++;
    s->data[s->top]=e;
    return true;
}
bool Pop(StackType * &s,ElemType &e)
{   if

}